package com.excesys.exsecs.scada.entity;


import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;

/**
 * 组态系统管理
 *
 * @author tzh
 * @date 2024-12-09 10:43:01
 */
@Data
@TableName(autoResultMap = true , value = "scada_system")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "组态系统管理")
public class ScadaSystem extends Model<ScadaSystem> {


	/**
	 * 主键id
	 */
	@Schema(description="主键id")
	private Long id;

	/**
	 * 父节点,根节点缺省为-1
	 */
	@Schema(description = "父节点id")
	private Long parentId;

	/**
	 * 系统参数 unitNo
	 */
	@Schema(description = "系统参数 unitNo")
	private String unitNo;

	/**
	 * 系统参数名称、系统名称（父节点）
	 */
	@Schema(description="系统参数名称、系统名称（父节点）")
	private String systemName;

	/**
	 * 系统参数属性(json)
	 */
	@Schema(description="系统参数属性(json)")
	@TableField(typeHandler = FastjsonTypeHandler.class)
	private JSONObject properties;

	/**
	 * 类型:  0:文件夹    1:系统参数
	 */
	@Schema(description = "类型 0：文件夹 1：系统参数")
	private String type;

	/**
	 * 排序值
	 */
	@Schema(description = "排序值，越小越靠前")
	private Integer sort;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;

	/**
	 * 删除标记 默认0，删除1
	 */
	@TableLogic
	@TableField(fill = FieldFill.INSERT)
	@Schema(description="删除标记 默认0，删除1")
	private String delFlag;

	/**
	 * 创建人
	 */
	@TableField(fill = FieldFill.INSERT)
	@Schema(description="创建人")
	private String createBy;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	@Schema(description="创建时间")
	private LocalDateTime createTime;

	/**
	 * 更新人
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	@Schema(description="更新人")
	private String updateBy;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	@Schema(description="更新时间")
	private LocalDateTime updateTime;



	/**
	 * 系统参数标识
	 */
	@TableField( exist = false )
	private String identifier;
	/**
	 * 单位
	 */
	@TableField( exist = false )
	private String unit;
	/**
	 * 数据类型 int32 float bool enum text
	 */
	@TableField( exist = false )
	private String datatype;
	/**
	 * 描述
	 */
	@TableField( exist = false )
	private String description;


}
